<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>04-$nextTick的方式获取更新数据</title>
</head>
<body>
  <div id="app">
    <h1>vue的例子</h1>
    <p>{{msg}}</p>
    <button @click="update">更新数据</button>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    Vue.config.productionTip = false; // 关闭生产提示
    const vm = new Vue({
      el: '#app',
      data: {
        msg: 'hello'
      },
      methods: {
        // update(){
        //   this.msg = 'Hello World'
        //   // 获取页面中的标签对象，然后获取标签间的内容
        //   let res = document.querySelector('p').innerHTML

        // 因为这个获取的操作是同步的，而页面中的更新渲染是异步的，所以获取的值还是原值
        //   console.log(res)
        // }

        update() {
          this.msg = 'Hello World'
          // 第1种写法
          // Vue.nextTick(() => {
          //   // 页面异步更新完成之后，来获取页面标签间的内容
          //   let res = document.querySelector('p').innerHTML
          //   console.log(res)
          // })

          // 第2种写法 
          this.$nextTick(() => {
            let res = document.querySelector('p').innerHTML
            console.log(res)
          })
        }
      }
    })
  </script>
</body>
</html>